package ziface

import "net"

type IConnection interface {
	Start()                         // 启动连接 让当前连接开始工作
	Stop()                          // 停止连接 结束当前连接状态
	GetConnID() uint32              // 获得当前连接的ID
	GetTCPConnection() *net.TCPConn // 从当前连接获得原始的socket TCP conn
	RemoteAddr() net.Addr           // 获得远程客户端的信息
	SendMsg(IMessage) error         // 直接将message数据发送给远程的TCP客户端
	SendBuffMsg(msgId uint32, data []byte) error
	SetProperty(key string, value interface{})   // 设置链接属性
	GetProperty(key string) (interface{}, error) // 获取链接属性
	RemoveProperty(key string)                   // 移除链接属性
}
type HandlerFunc func(*net.TCPConn, []byte, int) error
